package Games;

import java.util.Arrays;
import java.util.Scanner;

public class Game {
    static int[] arr = new int[4]; //创建一个4个下标的数组
    static int[] arry = new int[4]; //创建随机数组

    public static void main(String[] args) {
        random();

        for (int i = 5; i > 0; i--) {    //设定游戏5次机会
            System.out.println("你还有" + i + "次机会");
            number();    // 调用输入数字函数
            String ret = judge();  //调用
            if ("4 0".equals(ret)) {     // 正确答案对比
                System.out.println("恭喜，猜中全部");
                break;
            }

        }


    }

    static Scanner scan = new Scanner(System.in);

    public static void number() {

        System.out.println("游戏开始");
        for (int i = 0; i < arr.length; i++) {
            boolean faLg = true;
            System.out.println("请输入第：" + (i + 1) + " 个不同的数字");
            try {   //异常处理，必须输入数字
                int number = scan.nextInt();

                if (number >= 0 && number < 10) {  //判断输入合理的数字
                    for (int j = 0; j < i; j++) {  //遍历数组，把输入的数字对比以后，放入数组当中。
                        if (number == arr[j]) {
                            i--;
                            faLg = false;
                            break;
                        }
                    }
                    if (faLg) {
                        arr[i] = number;  //把输入
                    }

                } else {
                    System.out.println("输入数字超出范围，请重新输入");
                    i--;    // 非法的输入，i自减，重新循环
                }

            } catch (Exception e) {
                i--;  // 处理异常，非法输入循环自减
                System.out.println("必须输入数字");
                scan.next();   //清除scan数据

            }

        }
        System.out.println(Arrays.toString(arr));

    }

    public static void random() {

        for (int i = 0; i < arry.length; i++) {
            boolean faLg = true;
            int rod = (int) (Math.random() * 10);
            for (int j = 0; j < arry.length; j++) { //遍历数组，把不重复的数放入数组当中
                if (rod == arry[j]) {
                    i--;
                    faLg = false;
                    break;
                }
            }
            if (faLg) {
                arry[i] = rod;
            }
        }

    }

    public static String judge() {   //数组判断

        int sumA = 0;  //公牛计数器
        int sumB = 0;  //母牛计数器
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arry.length; j++) {
                if (arr[i] == arry[j]) {
                    if (i == j) {
                        sumA++;
                    } else {
                        sumB++;
                    }


                }
            }
        }
        System.out.println("你中了:" + sumA + "  个公牛");  //打印结果
        System.out.println("你中了：" + sumB + " 个母牛");
        return sumA + " " + sumB;
    }


}


